home *** CD-ROM | disk | FTP | other *** search
/ Software of the Month Club 2000 October / Software of the Month - Ultimate Collection Shareware 277.iso / pc / PROGRAMS / UTILITY / WINLINUX / DATA1.CAB / programs_-_include / ASM-MIPS / BRANCH.H < prev    next >
C/C++ Source or Header  |  1999-09-17  |  660b  |  30 lines

  1. /*
  2.  * Branch and jump emulation.
  3.  *
  4.  * This file is subject to the terms and conditions of the GNU General Public
  5.  * License.  See the file "COPYING" in the main directory of this archive
  6.  * for more details.
  7.  *
  8.  * Copyright (C) 1996, 1997, 1998 by Ralf Baechle
  9.  *
  10.  * $Id: branch.h,v 1.2 1998/05/04 09:18:56 ralf Exp $
  11.  */
  12. #include <asm/ptrace.h>
  13.  
  14. extern inline int delay_slot(struct pt_regs *regs)
  15. {
  16.     return regs->cp0_cause & CAUSEF_BD;
  17. }
  18.  
  19. extern int __compute_return_epc(struct pt_regs *regs);
  20.  
  21. extern inline int compute_return_epc(struct pt_regs *regs)
  22. {
  23.     if (!delay_slot(regs)) {
  24.         regs->cp0_epc += 4;
  25.         return 0;
  26.     }
  27.  
  28.     return __compute_return_epc(regs);
  29. }
  30.